The present invention relates to video games in general and more particularly to sharing game state among disparate game titles.
It is common for video games to provide for saving a game state. For example, if a player desires to turn off a video game but return later and resume at the same place in the game, the player can “save” the game state. The game state that is saved is typically determined by the game's programmers, and might include a current playing time, a current level, a current position, attributes of the player's character(s), capabilities of the player, past performance of the player (e.g., the player has already solved a particular task) and acquisitions of the player (points, implements, values, etc.). There might be other game state that is not saved, such as the current values of registers and RAM locations used by the game, but generally game programmers will include in the game state those variables that are significant enough to create the perception with the player that the state of the game, at the time of saving or just before the time of saving, is preserved.
It should be understood that while it is referred to as “saving a game”, the game program itself need not be saved, but the state of the game is saved. Typically, the game program is provided to the player in a nonvolatile, read-only form, such as a game cartridge, CDROM (Compact Disk—Read Only Memory), DVD (Digital Versatile Disk) or the like, and as such it does not need to be saved. As used herein, the term “game media” refers to the media on which game programs are provided, in whatever form. Typically, part or all of a game program is loaded from the game media into fast RAM and a processing unit, such as a CPU, works with the game program instructions, at least in part, from RAM rather than from the game media directly. However, in order to make efficient use of storage devices and to limit the use of the game to those players that possess the game media, typically only one game at a time can be run and only when the game media is coupled to the processing unit.
A common platform for playing video games is the game console. A game console is a computer that includes inputs and outputs suitable for game playing and includes a facility for inserting or attaching or connecting to some storage element containing a game program and the ability of the user to switch storage elements such that different games can be played at different times with a game console. The game console might include hardware to allow for multiple game consoles to intercommunicate.
Some popular game consoles include the Xbox™ console sold by Microsoft Corporation, the Sony Playstation™ 2 console sold by Sony, the Nintendo Game Cube™ (NCG) console sold by Nintendo Corporation, or the like. General purpose computers, cellular phones, and other game devices might also be used for playing video games, where the games support such platforms. Unless otherwise indicated, it should be understood that the term “game console” could extend to a personal computer or other general purpose computer or computing device when such computer or device is used to execute a game program.
Since the typical game is provided on nonvolatile, read-only media, game state cannot be saved onto such game media. To deal with game state, it is common for a console to provide some game-writable storage. With some consoles, this writable storage is in the form of a memory card that the player inserts to store game state, and possibly other data as well. With other consoles, fixed internal storage, such as a hard drive, is provided.
In a typical business arrangement, one company designs, manufactures and sells game consoles and games operable on those consoles are sold other companies. There might be many game developers that develop, distribute, and sell video games. To protect data for individual games in the face of many independent developers developing games, the console will typically assign or identify a unique code for each distinct game program and provide separate storage for that distinct game. For example, a racing game titled “Racing Game 2004” might be allocated a game ID of “R023”, while a football strategy game titled “Football Franchising 2004” might be allocated a game ID of“F011”. When a game program is to store game state, it might make a call to a game console routine for storage, providing its game ID and the game state data to be stored. When the game program subsequently wishes to restore a game state, it might make a call to a game console routine for reading game state data, providing its game ID.
To ensure that one developer's game does not adversely effect another developer's game, or even among games of a common developer, a game console manufacturer typically tests or certifies game programs before they can operate on the game console and provides a game ID for each product so tested and/or certified. Each product will typically have a distinct game ID, as provided by the console manufacturer or generated in some way to be unique from the game ID's of other products. As used herein, “title” refers to a particular game by a particular developer and “product” refers to a particular game. For example, “Madden NFL 2003”™ is a title offered by Electronic Arts of Redwood City, Calif. and that title might be embodied in several products, such as the “Madden NFL 2003”™ game for the Xbox™, the “Madden NFL 2003”™ game for the Playstation 2™, etc. Different versions of a game title are typically considered distinct titles. For example, the “Madden NFL 2003”™ title and the “Madden NFL 2004”™ title might be distinct titles.
Some game consoles do not restrict what data a game program can access, so in some cases, a game program might read data from game console storage that was stored by another game. However, many game consoles prevent this or only allow reading of selected datasets not created by the game program doing the reading.
While the compartmentalization of game state allows various developers to develop game programs that are reliable, such compartmentalization prevents games from using state that might span multiple games.